package com.youi.service;

import com.youi.entity.Goods;
import com.youi.entity.User;

import java.util.List;
import java.util.Map;

public interface GoodsService extends BaseService<Goods> {

    public Goods getForUpdate(Long id);

    /**
     * 获取商品信息
     *
     * @param goodsList
     */
    public void getGoodsMsg(List<Goods> goodsList);

    /**
     * 获取商品信息
     *
     * @param goods
     * @param user
     */
    public void getGoodsMsg(Goods goods, User user);

    /**
     * 获取商品信息
     *
     * @param goods
     * @return
     */
    void getGoodsInfoById(Goods goods);

    public List<Goods> getByNoParams(Map<String, Object> params, Map<String, Object> noParams);

    /**
     * 获取商品详情图
     *
     * @return
     */
    public String getGoodsImg(Goods goods);

    /**
     * 获取商品列表
     *
     * @param params
     * @return
     */
    List<Goods> listGoodsByPage(Map<String, Object> params);

    /**
     * 计算总数
     *
     * @param params
     * @return
     */
    Integer countListGoods(Map<String, Object> params);

    /**
     * 批量更新商品状态
     *
     * @param goodsIds
     * @param status
     * @return
     */
    Integer batchUpdateGoodsStatus(List<Long> goodsIds, Integer status);

    /**
     * 获取实时库存为0的商品列表
     * 实时库存为0：商品下的所有规格的实时库存汇总为0
     *
     * @param param
     * @return
     */
    List<Goods> listNoStockGoods(Map<String, Object> param);
}